Many processor-based devices support electronic ink: a user input technique where the user handwrites, draws, or performs other arbitrary spatial movements. As a result of such user input, visual marks called “ink” are added to the display that generally correspond to the path of the movement. For example, in the case of handwriting, handwritten words appear on the display in the same handwriting style that they were executed by the user.
In some cases, the user performs this input by moving a stylus (or “pen”) or his or her finger (collectively, “the writing object”) across the surface of a touchscreen display device, generating a sequence of 2-dimensional contact points each having a timestamp identifying the time at which the contact point was touched. In some cases, the user performs the inking input by moving a displayed position pointer on the screen, using an input device such as a mouse or touchpad. This information is sometimes referred to as “ink input.” The device transforms this ink input into ink that is displayed by generating a sequence of “ink strokes”—straight or curved segments of ink interpreted from the ink input, such as by interpolating and/or smoothing the contact points of the ink input.
Even in devices having powerful processors, high-speed data buses, etc., the process of generating and displaying ink takes a certain amount of time, sometimes referred to as “latency.” In many cases, this latency is large enough that the generated and displayed ink strokes lag a perceptible distance behind the tip of the writing object as it moves, preventing the user from forming and maintaining the sense that he or she is directing ink onto the drawing surface by his or her movement of the writing object.
In order to overcome the potential negative effects of inking latency, in some cases, the device uses techniques such as extrapolation and/or curve-fitting to predict one or more future contact points, and generates and displays ink using those predicted contact points along with the actual ink input, seeking to extend the ink to a point nearer the tip of the writing object.
In some cases, ink input also contains information about various other kinds of attributes, such as an indication of force or pressure—which can be used by the device in order to determine the thickness of the ink strokes it generates—and pen angle—which can affect the thickness and/or opacity level of ink strokes. In some cases, the prediction performed by the device extends to one or more of these additional attributes.